2807. Insert Greatest Common Divisors in Linked List
難度: 中等偏易
給定一串聯鏈結head
,在相鄰的兩個節點中,插入新的節點,值為兩個節點值的最大公因數。
遍歷head
,若目前節點
擁有下一個節點,則創建一個新節點
,填入最大公因數,新節點
的下一個指標指向目前節點
的下一個節點,目前節點
的下一個指標指向新節點
。
(簡單到不知道要擠什麼內容出來)
GCD特性:
https://hackmd.io/@sysprog/gcd-impl
class Solution {
public:
ListNode* insertGreatestCommonDivisors(ListNode* head) {
ListNode* curr = head;
while(curr)
{
if(curr->next)
{
ListNode* insert = new ListNode(gcd(curr->val, curr->next->val), curr->next);
curr->next = insert;
curr = curr->next;
}
curr = curr->next;
}
return head;
}
};
若head
長度為N
時間複雜度: O(N),遍歷head
長度為N
空間複雜度: O(N),建立N - 1個新節點
Time Submitted | Status | Runtime | Memory | Language |
---|---|---|---|---|
09/10/2024 13:23 | Accepted | 35 ms | 35.6 MB | cpp |
Accepted
582/582 cases passed (35 ms)
Your runtime beats 79.23 % of cpp submissions
Your memory usage beats 49.64 % of cpp submissions (35.6 MB)